Towards Open World Object Detection

"面向实际的目标检测"

Posted by JosonChan on 2021-03-21

Towards Open World Object Detection

Task definition

目前的大型数据集VOC或者是COCO,都只有几十类,因此训练得到的检测器也只能检测几十个类别的物体。而人可以检测出非常多种的物体,就算不知道这个类别,也会标记成不知道。同时人类并不会忘记以前认识的类别。如何使得检测器能够像人一样识别几十万甚至几百万的类别呢?显然不可能将数百万类别的数据一起训练,这做不到。如果使用使用标记好的数据进行fine-tune,这样的做法会导致检测器忘记以前学到的类别。针对以上的问题,需要有一种检测器能够对没有标注的物体进行检测,在不忘记之前学到的类别的同时,不断学习到不同的类别。

Challenge

  • A test image might contain objects from unknown classes, which should be classified as unknown.
  • As and when information (labels) about such identified unknowns become available, the model should be able to incrementally learn the new class.

image-20210321003728076

针对以上问题,任务定义:

  • 如何将图像的没有标签的物体标记为unknown呢?
  • 如何在不忘记之前学到的类别的情况下,加入新的类别信息让检测器不断学习新的类别呢?

Methods

image-20210321153602874

Unknown aware RPN

首先存在的问题就是,在传统的目标检测中,未知的物体与背景一样,都希望不会被检测出来。那么获取潜在未知的物体的标签呢?作者借鉴Faster-RCNN中的RPN思想。RPN是对特征图中的每个anchor作二分类,如果anchor与GT的IOU大于0.7则为1,小于0.3则为背景,介于中间则不参与训练。所以作者对RPN中与GT的IOU不高的,但是softmax分数很高的进行排序,取k个作为潜在的未知物体。(仔细想想,所谓背景都是潜在的类别,其实都可以被归为不同类,作者这个RPN想法真牛)

contrastive clustering

第二个问题,有了潜在的未知物体,如何确定它是未知的物体,即与已知物体的如何区别出来?作者提出了Contrastive clustering的方法,有点类似人脸的arcface的思想。将同一个类别的特征向量的距离更接近,不同类的距离更远。使用了Loss作为限制:

image-20210321155808563

Energe based Unknown Identifier

进一步,在如何与已知物体区别上,作者使用了Energy based 的损失函数。作者设计了一个能量函数,然后可视化已知类别和未知类别的数据分布,发现使用Energy based 的损失函数更倾向于给未知的类别更低的能量(如果能量越低,说明越匹配),因此用它代替原来的交叉熵函数效果更好。

image-20210321202002707

Alleviating Forgetting

  • show that a greedy exemplar selec-tion strategy for replay in incremental learning consistently outperforms the state-of-the-art methods by a large margin.

  • These motivates us to use a relatively simple methodology for ORE to mitigate forgetting i.e., we store a balanced set of exemplars and finetune the model after each incremental step on these. At each point, we ensure that a minimum of Nex instances for each class are present in the exemplar set.

为了防止以往的知识丢失,参考了别人的方法,使用了简单的策略(exemplar replay),但是论文并没有细讲,应该是另外一个领域的东西了,可能还要代码才能懂。简单的理解就是取出少量之前有代表性的样本一起训练,论文中是50.

Result

  • 使用全部数据进行训练作为参考,对比Faster-rcnn训练之后finetune新的类和Faster-rcnn训练之后finetune所有类,以及它们提出的方法,发现sota
  • 在增量式的目标检测,表现sota

Discuss

  • Occlusions and crowding of objects are cases where our method tends to get confused (external-storage, walkman and bag not detected as unknown in Figs. 11, 13).
  • Difficult viewpoints (such as backside) also lead to some misclassifications (giraffe→horse in Figs. 4, 12).
  • We have also noticed that detecting small unknown objects co-occurring with larger known objects is hard.

由于只使用RPN做为未知物体作标签,然后选取没有IOU较高的,导致出现回归的位置不准确。

对于拥挤、密集的场景下,IOU的问题也存在。

大的物体更容易被识别成未知物体。(有点显著性检测的意思)